package com.zuipin.entity.shoppingCart;

import java.util.ArrayList;
import java.util.List;

import com.zuipin.vo.EnumVo;

/**
 * @description : 规则类型
 * @author : wuhaijun
 * @date : 2017年4月26日 下午9:15:55
 */
public enum ShowType {
	ORDER_DISCOUNT("订单打折券"), //
	SINGLE_PRO_DISCOUNT("单品打折券"), //
	FREE_POSTAGE("免邮费"), //
	CASH("现金券"), //
	DELIVERY_NOTE("提货券"), //
	FULL_CAT("满品类总额免邮"), //
	FULL_TEA_SET("满茶具总额免邮"), //
	FULL_TEA_LEAF("满茶叶总额免邮"), //
	FULL_PRO("满商品总额免邮"), //
	FULL_CAT_SELF("满品类总额免邮(自营)"), //
	FULL_TEA_SET_SELF("满茶具总额免邮(自营)"), //
	FULL_TEA_LEAF_SELF("满茶叶总额免邮(自营)"), //
	FULL_PRO_SELF("满商品总额免邮(自营)"), //
	SUB_AMOUNT("减金额"), //
	GIVE_INTEGRAL("送积分"), //
	GIVE_BACK_BALANCE("送返现余额"), //
	GIVE_TOPUP_BALANCE("送充值余额"), //
	GIVE_RED_PACKET("送红包"), //
	GIVE_PRO("送商品"), //
	FREE_SHIPPING_PRODUCT("针对商品免邮"), //
	FREE_SHIPPING_ORDER("针对订单免邮"), //
	GIVE_DRAW_NUM("送抽奖次数"), //
	CON_SIGN("连续签到"), //
	REG("注册"), //
	LOGIN("登录"), //
	MEMBER_UPGRADE("会员升级"), //
	SINGLE_TOPUP("单笔充值"), //
	ADDUP_TOPUP("累计充值"), //
	SPECIAL_PRICE("特价"); //
	
	private String name;
	
	private ShowType(String name) {
		this.name = name;
	}
	
	public String getName() {
		return name;
	}
	
	/**
	 * 获取红包类型
	 * @return
	 */
	public static List<EnumVo> findRedPacketType() {
		List<EnumVo> list = new ArrayList<>();
		list.add(new EnumVo(ShowType.CASH.name, ShowType.CASH.toString(), null));
		list.add(new EnumVo(ShowType.SINGLE_PRO_DISCOUNT.name, ShowType.SINGLE_PRO_DISCOUNT.toString(), null));
		list.add(new EnumVo(ShowType.ORDER_DISCOUNT.name, ShowType.ORDER_DISCOUNT.toString(), null));
		return list;
	}
	
	/**
	 * 获取促销类型
	 * @return
	 */
	public static List<EnumVo> findPromotionType(String type) {
		List<EnumVo> list = new ArrayList<>();
		list.add(new EnumVo(ShowType.GIVE_INTEGRAL.name, ShowType.GIVE_INTEGRAL.toString(), null));
		// list.add(new EnumVo(ShowType.GIVE_BACK_BALANCE.name, ShowType.GIVE_BACK_BALANCE.toString(), null));
		list.add(new EnumVo(ShowType.GIVE_TOPUP_BALANCE.name, ShowType.GIVE_TOPUP_BALANCE.toString(), null));
		list.add(new EnumVo(ShowType.GIVE_RED_PACKET.name, ShowType.GIVE_RED_PACKET.toString(), null));
		list.add(new EnumVo(ShowType.GIVE_PRO.name, ShowType.GIVE_PRO.toString(), null));
		list.add(new EnumVo(ShowType.GIVE_DRAW_NUM.name, ShowType.GIVE_DRAW_NUM.toString(), null));
		if (RuleType.CART.toString().equals(type)) {
			list.add(new EnumVo(ShowType.FREE_POSTAGE.name, ShowType.FREE_POSTAGE.toString(), null));
			list.add(new EnumVo(ShowType.SUB_AMOUNT.name, ShowType.SUB_AMOUNT.toString(), null));
		}
		return list;
	}
}
